package createpattern.singletonpattern;

import createpattern.singletonpattern.lazy.Singleton5;

/**
 * 除了枚举方式外，其他的方式能被 1.序列化反序列化 2.反射 这两种方式破坏单例模式
 * 解决方法：在Singleton类中添加 readResolve() 方法，在反序列化时被反射调用，如果定义了这个方法，
 * 就返回这个方法的值，如果没有定义，则返回新new出来的对象。
 * */
public class Question {
    // 假设当前是Singleton5类，在类中添加readResolve方法，返回单例对象
    private Object readResolve() {
        return Singleton5.getInstance();
    }
}
